Резервное копирование и восстановление данных расширения
Есть три различных способа работы с данными расширения, которые гарантируют их своевременное резервное копирование и восстановление:
- Хранение данных в Хранилище пар «ключ-значение» Plesk,
- Хранение данных в базах данных SQLite,
- Использование хуков резервного копирования SDK.
Хранилище пар «ключ-значение» Plesk
Это рекомендуемый способ, подходящий в большинстве случаев. Идея этого способа – хранить данные расширения и работать с ними с помощью следующих методов:
- pm_Client::setSetting() и pm_Client::getSetting() для данных клиента и реселлера,
- pm_Domain::setSetting() и pm_Domain::getSetting() для данных подписки или домена,
- pm_Settings:set() и pm_Settings::get() для любого типа данных.
Таким образом, все данные будут храниться в Хранилище пар «ключ-значение» Plesk, для которого автоматически создается резервная копия, включающая и остальные данные Plesk. Кроме того, данные из хранилища пар «ключ-значение» могут быть безопасно и корректно восстановлены. В итоге можно сказать, что этот подход избавляет вас от необходимости выполнения каких-либо дополнительных шагов по резервному копированию и восстановлению данных расширения.
Базы данных SQLite
Все данные, сохраненные расширением в локальной базе данных, будут сохранены в файловой системе в папке /var/
в Plesk (используйте метод pm_Context::getVarDir() для получения ее точного местонахождения). Эта папка автоматически сохраняется Plesk при каждом резервном копировании сервера. Данные расширения будут восстановлены вместе с остальными данными Plesk во время полного восстановления сервера.
Примечание: Данные расширения не включаются в резервную копию, если она выполняется только для подписки или учетной записи клиента или реселлера.
Примечание: Данные расширения не будут восстановлены в случае частичного восстановления (выбранных учетных записей или подписок) из полной резервной копии сервера.
Для обеспечения целостности данных вашего расширения, пожалуйста, имейте в виду следующую важную информацию.
Предупреждение: В ходе восстановления данных Plesk из резервной копии ID некоторых восстановленных объектов Plesk могут измениться. Если ваше расширение сохраняет в базе данных ID таких объектов Plesk, после восстановления они могут устареть и стать некорректными.
Использование GUID или имен в качестве ссылок на объекты Plesk там, где это необходимо, поможет сохранить целостность данных вашего расширения в ходе процессов резервного копирования и восстановления.
Хуки резервного копирования SDK
В редких случаях, когда специфика определенных данных расширения делает невозможным использование хранилища пар «ключ-значение», вместо него можно использовать механизм хуков резервного копирования SDK.
Классы pm_Hook_Backup_Client, pm_Hook_Backup_Domain и pm_Hook_Backup_Server предоставляют методы backup()
и restore()
. В зависимости от характера данных, один или несколько этих классов надо использовать для создания классов расширения, которые наследуют и перезаписывают методы backup()
и restore()
с соответствующими инструкциями, объясняющими, как сохранять и восстанавливать тот или иной тип данных.